package com.xnyzc.lhy.mis.service.cms.price;

import com.xnyzc.lhy.common.entity.Rv;
import com.xnyzc.lhy.mis.entity.param.cms.price.AddPriceParam;
import com.xnyzc.lhy.mis.entity.param.cms.price.NewBillRulesParam;
import com.xnyzc.lhy.mis.entity.param.cms.price.PriceParam;
import com.xnyzc.lhy.mis.entity.system.OaSysBillRuleGroup;
import com.xnyzc.lhy.mis.entity.system.OaSysCityProperRuleGroup;


/**
 * <p>
 * 价格模板相关
 * </p>
 *
 * @author wangshuo
 * @since 2019-08-07
 */
public interface PriceTemplateService {

    /**
     * 新增或修改计费规则组列表
     *
     * @return
     */
    Rv addOrUpdateRuleGroup(OaSysBillRuleGroup ruleGroup);

    /**
     * 获取计费规则组列表
     *
     * @return
     */
    Rv getRuleGroup(PriceParam priceParam);


    /**
     * 新增或修改城市区规则组列表
     *
     * @return
     */
    Rv addOrUpdateCityProperRuleGroup(OaSysCityProperRuleGroup ruleGroup);

    /**
     * 获取城市区规则组列表
     *
     * @return
     */
    Rv getCityProperRuleGroup(PriceParam priceParam);

    /**
     * 新增或修改价格模板
     *
     * @param priceParam
     * @return
     */
    Rv addOrUpdatePriceTemplate(AddPriceParam priceParam);

    /**
     * 获取新的价格模详情
     *
     * @return
     */
    Rv getNewPriceTemplateDetails(PriceParam priceParam);

    /**
     * 新增或修改城市区规则
     *
     * @param priceParam
     * @return
     */
    Rv addOrUpdateCityProperRule(AddPriceParam priceParam);

    /**
     * 获取城市区规则详情
     *
     * @return
     */
    Rv getCityProperRuleDetails(PriceParam priceParam);

    /**
     * 新增或修改平台时间段规则
     *
     * @param priceParam
     * @return
     */
    Rv addOrUpdatePlatformTimeRule(AddPriceParam priceParam);

    /**
     * 获取平台时间段规则详情
     *
     * @return
     */
    Rv getPlatformTimeRuleDetails(PriceParam priceParam);

    /**
     * 价格模板启用
     *
     * @return
     */
    Rv disablePrice(PriceParam priceParam);

    /**
     * 合并表
     * @return
     */
    Rv merageTables();

    /**
     * 新版本查询费用设置
     * @param priceParam
     * @return
     */
    Rv getNewPriceDetails(PriceParam priceParam );

    /**
     * 新版本添加费用模板
     * @return
     */
    Rv addNewPriceDetails(NewBillRulesParam billRulesParam );

    Rv exchangeRefuseArea();

    Rv getStationList(PriceParam priceParam);
}
